﻿using System.Linq;
using System.Collections.Generic;

namespace N2
{
	public class ItemContainer<ItemType> : ContentItem, IItemContainer<ItemType>
		where ItemType: ContentItem
	{
		public IList<ItemType> Items {
			get { return this.GetChildrenList<ItemType>(); }
		}
	}

	public class ItemHierarchyContainer<ItemType>
		: ItemContainer<ItemType>, IItemHierarchyContainer<ItemType>
		where ItemType: ContentItem
	{
		public IEnumerable<ItemType> ItemHierarchy
		{
			get { return Find.EnumerateTree(this).OfType<ItemType>(); }
		}
	}
}
